618技术揭秘:大促弹窗搭投实践
Tech导读
弹窗作为非常重要的营销触达手段被各业务广泛应用,本文主要介绍 “XView 营销弹窗搭投系统” 关于快速搭建、投放配置营销弹窗能力的实现原理,以及在 618 等重要大促场景中的应用和实践,欢迎交流与探讨。
导读
弹窗作为非常重要的营销触达手段被各业务广泛应用,本文主要介绍 “XView 营销弹窗搭投系统” 关于快速搭建、投放配置营销弹窗能力的实现原理,以及在 618 等重要大促场景中的应用和实践,欢迎交流与探讨。01 背景
在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!
618 大促来了,对于业务团队来说,最重要的事情莫过于各种大促营销。如会场、直播带货、频道内营销等等。而弹窗作为一个极其重要的强触达营销工具,通常用来渲染大促氛围、引流主会场、以及通过频道活动来提升频道复访等。因此,如果能将运营的策略及想法快速转化为弹窗的内容并触达给用户,这对于提升运营效率及玩法灵活性的是极其有意义的。
此前,在 JD 主站的大多弹窗业务应用中,XView 仅仅是作为一个 h5 的容器被使用,或基于 XView 提供的一些简单的配置化能力来配置一个弹窗。作为 h5 容器的方式虽然灵活,但需要研发的参与。而基于 XView 提供的配置化能力,虽然只需产品、运营侧配置,但是配置化逻辑繁琐、学习成本高、且对于弹窗样式有局限,不够灵活。因此,此前使用的俩种方式,弊端都可以归结为:使用成本高。
为了持续优化XView 性能, XView 从配置化的方式,升级为组件化搭建的方式,以一种更加直观的可视化拖拽元素组件搭建弹窗样式,而后附加投放的配置,其目标便是解决此前所面临的几个重点问题:学习成本高 不够灵活 需要编码
升级完成后,本次 618 的一些重要弹窗均迁移到全新的搭投平台。
02
XView618实践
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕。
图1.
2. T级互动
3.老罗直播底部通栏
4.新品小魔方、京东电器等频道红包雨
03
XView弹窗搭投升级
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕。
3.1 应用场景分析
通过以上分类的梳理,从业务视角来看,功能性的弹窗在大促中的重要性是其次的,而主要是营销类的弹窗,它们往往具备以下特点:
突发创意/需求:偶然的创意玩法,或突发的外部业务需求,时效性要求高,即上线时间不可逾期。
一次性 : 用一段时期就不用了。
能按需触达 : 可按需投放,投放到不同的业务,满足不同人群需要。
要保障触达成功率:如一些广告投放,品牌方有曝光率要求的。
3.2 能力细化抽象
为了满足以上业务的诉求,从大的方向上看,XView 需要做到
快:快速搭建
准:精准投放
稳:高效触达
因此,接下来我们将刨析一个弹窗从生产到应用的过程中所涉及到的一些环节,再来看看如何细化弹窗需要具备的能力。通过观察一些典型弹窗后不难发现,在不同业务中,它们的工作流程是极其相似的,其工作流程和应用场景可大致抽象成如下图所示:
另外,弹窗通常的样式比较简单,可能就是一些文字、图片、视频等,这些数据可以基于人工的录入配置,也可以来自于上游接口。最后,可以概括出来弹窗应具备的一些特质,它们主要包括:
人群投放:根据用户身份标签、地理位置等信息进行定投
触发场景:进入页面、摇一摇
页面覆盖:首页、会场... (原生、H5)
动画能力:淡入、淡出
元素覆盖:文字、图片...
布局形态:全屏、半屏
点击事件:跳转、接口请求
数据绑定:静态配置数据、接口请求数据
3.3 搭投平台设计
最终搭建的产物被转化成了通天塔的 DSL,这是为了在客户端复用通天塔的 原生渲染 能力,并利用原生的渲染来确保弹窗的体验更佳。
3.4 客户端设计
搭建好的产物最终会被投放到客户端,而客户端主要处理的重点是:弹窗资源(预)加载、触发控制、内容渲染,以下为客户端的设计图,图中资源以图片资源为代表来说明:
3.5 使用XView搭投
04 专题讨论
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目
4.1 动态数据绑定
对于动态数据的支持,会稍稍复杂一点点,大致流程如下:
1.定义变量及模型命名标准规范: 基于标准规范,便于程序理解变量输出的意义,如 title 可解释为标题
2.基于接口的编排能力输出标准变量: 整合上游接口,转化为标准输出
3.搭建设计器中配置数据源: 配置接口编号及请求参数
在上图案例中,通过接口的编排和配置,XView 将图中所示 “接口1” 作为数据源,此接口输出标准化命名的变量,让搭建设计器可以识别变量的意义并展示为中文提示。然后组件的属性可以选择绑定这些输出的 “变量”。如下图所示,这是在设置一个文本组件的文本内容属性,这里选择绑定了输出的标准变量列表中的 “标题” :
4.2 使用动画提升效能
以下就是一个使用 Lottie 动画替代 gif 的案例,以这个动画为例,对比 gif 的形式 lottie 的体积缩小了大约 90%。
05 写在最后
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目
与此同时,会持续提升弹窗体验,提高曝光率、点击率,并不断探索更多的运营玩法及策略,支持运营实现更多的业务价值的提升。
当小白遇到FullGC
618技术大揭秘:Switchquery秒级配置触达平台的设计与实现
如何从消失的异常堆栈定位线上问题
求分享
求点赞
求在看